/**
 * SPDX-FileCopyrightText: 2023-2025 Sangfor Technologies Inc.
 * SPDX-License-Identifier: Mulan PSL v2
 */
import { trim } from 'src/util/format';
import strictValidateIpv4 from 'src/util/validations/strict_multi_ip/index';

/**
 * 用于int类型的校验
 * @param { string } v 需要验证的内容
 * @param { number } maxLine 最大的行数
 * @param { string } notAllow
 * @param { function } defaultValidator 其他验证函数
 * @returns { boolean } 是否通过验证
 */
export default function (v, maxLine, notAllow, defaultValidator) {
    if (!v) {
        return true;
    }
    v = trim(v);

    let options = {
        maxline: maxLine,
        check: notAllow
    };
    let result = strictValidateIpv4(v, options);
    if (Array.isArray(result)) {
        return result.join('');
    }

    return defaultValidator ? defaultValidator(v) : result;
};
